package com.tanguy.user.ui.me.activity.wallet

import android.annotation.SuppressLint
import android.os.Handler
import android.os.Message
import com.tanguy.user.R
import com.tanguy.user.base.ImmersionTitleActivity
import cn.sinata.xldutils_kotlin.utils.SpanBuilder
import kotlinx.android.synthetic.main.activity_pay.*
import java.util.*


/**
 * 支付
 */
class PayActivity : ImmersionTitleActivity() {
    override fun setContentViewRes(): Int = R.layout.activity_pay

    var payMoney = 0.0
    val userId by lazy {
        //        SPUtils.instance().getInt(Const.User.USER_ID)
        5
    }

    override fun initView() {
        super.initView()
        title = "支付"
        titleBar.apply { showLeft(true) }.leftClick { finish() }

        payMoney = intent.getDoubleExtra("payMoney", 0.0)
        val priceString = String.format(Locale.CHINA, "￥%.0f", payMoney)
        tv_money.text = SpanBuilder(priceString).size(1, priceString.length, 18).build().toString()
    }

    override fun initEvent() {
        super.initEvent()
//        rl_alipay.onClick {
//            if (TPayUtil.checkAliPayState(this@PayActivity)) {
//                getPayInfo(7)
//            } else {
//                toast("请先安装支付宝！或选择其他支付方式！")
//            }
//        }
//        rl_weixin.onClick {
//            TPayUtil.initWeChatPay(this@PayActivity, Const.WECHAT_APP_ID)
//            if (TPayUtil.checkSupportWeChat(this@PayActivity)) {
//                getPayInfo(6)
//            } else {
//                toast("请先安装微信！或选择其他支付方式！")
//            }
//        }
    }

    //1：支付宝支付，2：微信支付，3余额支付，4微信公小程序充值 5公众号充值 6微信app充值 7支付宝充值
    private fun getPayInfo(type: Int) {
//        HttpManager.getPayInfo(userId, type, "", "名的出行", "名的出行用户充值", payMoney).doOnSubscribe {
//            showDialog()
//        }.subscribe(object : ResultDataSubscriber<JsonObject>(this) {
//            override fun onSuccess(msg: String, data: JsonObject?) {
//                if (type == 6) {
//                    TPayUtil.weChatPay(this@PayActivity, JSONObject(data?.toString()))
//                } else if (type == 7) {
//                    TPayUtil.aliPay(this@PayActivity, data?.get("orderInfo")?.asString, handler)
//                }
//            }
//        })
    }

    private var handler = @SuppressLint("HandlerLeak")
    object : Handler() {
        override fun handleMessage(msg: Message?) {
            super.handleMessage(msg)
//            when (msg?.what) {
//                TPayUtil.SDK_PAY_FLAG -> {
//                    val payResult = PayResult(msg?.obj as Map<String, String>)
//                    /**
//                     * 同步返回的结果必须放置到服务端进行验证（验证的规则请看https://doc.open.alipay.com/doc2/
//                     * detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&
//                     * docType=1) 建议商户依赖异步通知
//                     */
//                    val resultStatus = payResult.resultStatus
//                    // 判断resultStatus 为“9000”则代表支付成功，具体状态码代表含义可参考接口文档
//                    if (TextUtils.equals(resultStatus, "9000")) {
//                        toast("支付成功")
//                        RxBus.get().post(Const.Action.PAY_SUCCESS_ACTION, "")
//                    } else {
//                        // 判断resultStatus 为非"9000"则代表可能支付失败
//                        // "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认，最终交易是否成功以服务端异步通知为准（小概率状态）
//                        if (TextUtils.equals(resultStatus, "8000")) {
//                            toast("支付结果确认中")
//                        } else {
//                            // 其他值就可以判断为支付失败，包括用户主动取消支付，或者系统返回的错误
//                            toast("支付失败")
//                        }
//                    }
//                }
//            }
        }
    }
}
